/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.mindbox.mueblesalpes.negocio.utilidades;

import com.mindbox.mueblesalpes.negocio.entity.Entidad;
import com.mindbox.mueblesalpes.negocio.entity.FormaPago;
import java.util.ArrayList;
import java.util.List;

/**
 * Utilidades de las entidades
 * @author jsanchez
 */
public abstract class UtilidadesEntidad {
    /**
     * Generar las entidades a nivel de objetos.
     * @param formaPago
     * @return
     */
    public static synchronized List<Entidad> generarEntidades(FormaPago formaPago){
        switch(formaPago){
            case ENTIDAD_BANCARIA: return generarEntidadesBancarias();
            case TARJETA_CREDITO: return generarEntidadesTarjetaCredito();
            case TARJETA_CREDITO_ALPES: return generarEntidadesTarjetaCreditoAlpes();
        }
        return new ArrayList<Entidad>();
    }
    /**
     * Genera las entidades para tarjeta de credito
     * @return
     */
    private static synchronized List<Entidad> generarEntidadesTarjetaCredito(){
        List<Entidad> entidades = new ArrayList<Entidad>();

        Entidad entidad = new Entidad("Dinners","Dinners",FormaPago.TARJETA_CREDITO);
        entidades.add(entidad);

        entidad = new Entidad("Master_Card","Master Card",FormaPago.TARJETA_CREDITO);
        entidades.add(entidad);

        entidad = new Entidad("Visa","Visa",FormaPago.TARJETA_CREDITO);
        entidades.add(entidad);

        return entidades;
    }

    /**
     * Genera las entidades para bancos
     * @return
     */
    private static synchronized List<Entidad> generarEntidadesBancarias(){
        List<Entidad> entidades = new ArrayList<Entidad>();

        Entidad entidad = new Entidad("Banco_Bogota","	Banco de Bogotá",FormaPago.ENTIDAD_BANCARIA);
        entidades.add(entidad);

        entidad = new Entidad("Davivienda","Davivienda",FormaPago.ENTIDAD_BANCARIA);
        entidades.add(entidad);

        entidad = new Entidad("ATH","ATH",FormaPago.ENTIDAD_BANCARIA);
        entidades.add(entidad);

        return entidades;
    }

    /**
     * Genera las entidades para tarjeta de crédito los alpes
     * @return
     */
    private static synchronized List<Entidad> generarEntidadesTarjetaCreditoAlpes(){
        List<Entidad> entidades = new ArrayList<Entidad>();

        Entidad entidad = new Entidad("Mueble_Alpes","Tarjeta de Crédito Mueble los Alpes",FormaPago.TARJETA_CREDITO_ALPES);
        entidades.add(entidad);

        return entidades;
    }

}